home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 11 / CU Amiga Magazine's Super CD-ROM 11 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-06].iso / www / http / www.htmlhelp.com / design / jpeg-faq.txt < prev    next >
Text File  |  1997-03-24  |  91KB  |  1,735 lines

  1. Last-modified: 7 July 1996
  2.  
  3. This article answers Frequently Asked Questions about JPEG image compression.
  4. This is part 1, covering general questions and answers about JPEG.  Part 2
  5. gives system-specific hints and program recommendations.  As always,
  6. suggestions for improvement of this FAQ are welcome.
  7.  
  8. New since version of 9 June 1996:
  9.   * The ohio-state WWW FAQ archive is dead.  Sigh.
  10.  
  11.  
  12. This article includes the following sections:
  13.  
  14. Basic questions:
  15.  
  16. [1] What is JPEG?
  17. [2] Why use JPEG?
  18. [3] When should I use JPEG, and when should I stick with GIF?
  19. [4] How well does JPEG compress images?
  20. [5] What are good "quality" settings for JPEG?
  21. [6] Where can I get JPEG software?
  22. [7] How do I view JPEG images posted on Usenet?
  23.  
  24. More advanced questions:
  25.  
  26. [8] What is color quantization?
  27. [9] What are some rules of thumb for converting GIF images to JPEG?
  28. [10] Does loss accumulate with repeated compression/decompression?
  29. [11] What is progressive JPEG?
  30. [12] Can I make a transparent JPEG?
  31. [13] Isn't there a lossless JPEG?
  32. [14] Why all the argument about file formats?
  33. [15] How do I recognize which file format I have, and what do I do about it?
  34. [16] How does JPEG work?
  35. [17] What about arithmetic coding?
  36. [18] Could an FPU speed up JPEG?  How about a DSP chip?
  37. [19] Isn't there an M-JPEG standard for motion pictures?
  38. [20] What if I need more than 8-bit precision?
  39.  
  40. Miscellaneous:
  41.  
  42. [21] Where are FAQ lists archived?
  43.  
  44.  
  45. This article and its companion are posted every 2 weeks.  If you can't find
  46. part 2, you can get it from the news.answers archive at rtfm.mit.edu
  47. (see "[21] Where are FAQ lists archived?").  Part 2 changes very frequently;
  48. get a new copy if the one you are reading is more than a couple months old.
  49.  
  50. ------------------------------
  51.  
  52. Subject: [1] What is JPEG?
  53.  
  54. JPEG (pronounced "jay-peg") is a standardized image compression mechanism.
  55. JPEG stands for Joint Photographic Experts Group, the original name of the
  56. committee that wrote the standard.
  57.  
  58. JPEG is designed for compressing either full-color or gray-scale images
  59. of natural, real-world scenes.  It works well on photographs, naturalistic
  60. artwork, and similar material; not so well on lettering, simple cartoons,
  61. or line drawings.  JPEG handles only still images, but there is a related
  62. standard called MPEG for motion pictures.
  63.  
  64. JPEG is "lossy," meaning that the decompressed image isn't quite the same as
  65. the one you started with.  (There are lossless image compression algorithms,
  66. but JPEG achieves much greater compression than is possible with lossless
  67. methods.)  JPEG is designed to exploit known limitations of the human eye,
  68. notably the fact that small color changes are perceived less accurately than
  69. small changes in brightness.  Thus, JPEG is intended for compressing images
  70. that will be looked at by humans.  If you plan to machine-analyze your
  71. images, the small errors introduced by JPEG may be a problem for you, even
  72. if they are invisible to the eye.
  73.  
  74. A useful property of JPEG is that the degree of lossiness can be varied by
  75. adjusting compression parameters.  This means that the image maker can trade
  76. off file size against output image quality.  You can make *extremely* small
  77. files if you don't mind poor quality; this is useful for applications such
  78. as indexing image archives.  Conversely, if you aren't happy with the output
  79. quality at the default compression setting, you can jack up the quality
  80. until you are satisfied, and accept lesser compression.
  81.  
  82. Another important aspect of JPEG is that decoders can trade off decoding
  83. speed against image quality, by using fast but inaccurate approximations to
  84. the required calculations.  Some viewers obtain remarkable speedups in this
  85. way.
  86.  
  87. ------------------------------
  88.  
  89. Subject: [2] Why use JPEG?
  90.  
  91. There are two good reasons: to make your image files smaller, and to store
  92. 24-bit-per-pixel color data instead of 8-bit-per-pixel data.
  93.  
  94. Making image files smaller is a win for transmitting files across networks
  95. and for archiving libraries of images.  Being able to compress a 2 Mbyte
  96. full-color file down to, say, 100 Kbytes makes a big difference in disk
  97. space and transmission time!  And JPEG can easily provide 20:1 compression
  98. of full-color data.  If you are comparing GIF and JPEG, the size ratio is
  99. usually more like 4:1 (see "[4] How well does JPEG compress images?").
  100.  
  101. If your viewing software doesn't support JPEG directly, you'll have to
  102. convert JPEG to some other format to view the image.  Even with a
  103. JPEG-capable viewer, it takes longer to decode and view a JPEG image than
  104. to view an image of a simpler format such as GIF.  Thus, using JPEG is
  105. essentially a time/space tradeoff: you give up some time in order to store
  106. or transmit an image more cheaply.  But it's worth noting that when network
  107. or telephone transmission is involved, the time savings from transferring a
  108. shorter file can be greater than the time needed to decompress the file.
  109.  
  110. The second fundamental advantage of JPEG is that it stores full color
  111. information: 24 bits/pixel (16 million colors).  GIF, the other image format
  112. widely used on the net, can only store 8 bits/pixel (256 or fewer colors).
  113. GIF is reasonably well matched to inexpensive computer displays --- most
  114. run-of-the-mill PCs can't display more than 256 distinct colors at once.
  115. But full-color hardware is getting cheaper all the time, and JPEG images
  116. look *much* better than GIFs on such hardware.  Within a couple of years,
  117. GIF will probably seem as obsolete as black-and-white MacPaint format does
  118. today.  Furthermore, JPEG is far more useful than GIF for exchanging images
  119. among people with widely varying display hardware, because it avoids
  120. prejudging how many colors to use (see "[8] What is color quantization?").
  121. Hence JPEG is considerably more appropriate than GIF for use as a Usenet
  122. and World Wide Web standard format.
  123.  
  124. A lot of people are scared off by the term "lossy compression".  But when
  125. it comes to representing real-world scenes, *no* digital image format can
  126. retain all the information that impinges on your eyeball.  By comparison
  127. with the real-world scene, JPEG loses far less information than GIF.
  128. The real disadvantage of lossy compression is that if you repeatedly
  129. compress and decompress an image, you lose a little quality each time
  130. (see "[10] Does loss accumulate with repeated compression/decompression?").
  131. This is a serious objection for some applications but matters not at all
  132. for many others.
  133.  
  134. ------------------------------
  135.  
  136. Subject: [3] When should I use JPEG, and when should I stick with GIF?
  137.  
  138. JPEG is *not* going to displace GIF entirely; for some types of images,
  139. GIF is superior in image quality, file size, or both.  One of the first
  140. things to learn about JPEG is which kinds of images to apply it to.
  141.  
  142. Generally speaking, JPEG is superior to GIF for storing full-color or
  143. gray-scale images of "realistic" scenes; that means scanned photographs and
  144. similar material.  Any continuous variation in color, such as occurs in
  145. highlighted or shaded areas, will be represented more faithfully and in less
  146. space by JPEG than by GIF.
  147.  
  148. GIF does significantly better on images with only a few distinct colors,
  149. such as line drawings and simple cartoons.  Not only is GIF lossless for
  150. such images, but it often compresses them more than JPEG can.  For example,
  151. large areas of pixels that are all *exactly* the same color are compressed
  152. very efficiently indeed by GIF.  JPEG can't squeeze such data as much as GIF
  153. does without introducing visible defects.  (One implication of this is that
  154. large single-color borders are quite cheap in GIF files, while they are best
  155. avoided in JPEG files.)
  156.  
  157. Computer-drawn images, such as ray-traced scenes, usually fall between
  158. photographs and cartoons in terms of complexity.  The more complex and
  159. subtly rendered the image, the more likely that JPEG will do well on it.
  160. The same goes for semi-realistic artwork (fantasy drawings and such).
  161. But icons that use only a few colors are handled better by GIF.
  162.  
  163. JPEG has a hard time with very sharp edges: a row of pure-black pixels
  164. adjacent to a row of pure-white pixels, for example.  Sharp edges tend to
  165. come out blurred unless you use a very high quality setting.  Edges this
  166. sharp are rare in scanned photographs, but are fairly common in GIF files:
  167. consider borders, overlaid text, etc.  The blurriness is particularly
  168. objectionable with text that's only a few pixels high.  If you have a GIF
  169. with a lot of small-size overlaid text, don't JPEG it.  (If you want to
  170. attach descriptive text to a JPEG image, put it in as a comment rather than
  171. trying to overlay it on the image.  Most recent JPEG software can deal with
  172. textual comments in a JPEG file, although older viewers may just ignore the
  173. comments.)
  174.  
  175. Plain black-and-white (two level) images should never be converted to JPEG;
  176. they violate all of the conditions given above.  You need at least about
  177. 16 gray levels before JPEG is useful for gray-scale images.  It should also
  178. be noted that GIF is lossless for gray-scale images of up to 256 levels,
  179. while JPEG is not.
  180.  
  181. If you have a large library of GIF images, you may want to save space by
  182. converting the GIFs to JPEG.  This is trickier than it may seem --- even
  183. when the GIFs contain photographic images, they are actually very poor
  184. source material for JPEG, because the images have been color-reduced.
  185. Non-photographic images should generally be left in GIF form.  Good-quality
  186. photographic GIFs can often be converted with no visible quality loss, but
  187. only if you know what you are doing and you take the time to work on each
  188. image individually.  Otherwise you're likely to lose a lot of image quality
  189. or waste a lot of disk space ... quite possibly both.  Read sections 8 and 9
  190. if you want to convert GIFs to JPEG.
  191.  
  192. ------------------------------
  193.  
  194. Subject: [4] How well does JPEG compress images?
  195.  
  196. Very well indeed, when working with its intended type of image (photographs
  197. and suchlike).  For full-color images, the uncompressed data is normally 24
  198. bits/pixel.  The best known lossless compression methods can compress such
  199. data about 2:1 on average.  JPEG can typically achieve 10:1 to 20:1
  200. compression without visible loss, bringing the effective storage requirement
  201. down to 1 to 2 bits/pixel.  30:1 to 50:1 compression is possible with small
  202. to moderate defects, while for very-low-quality purposes such as previews or
  203. archive indexes, 100:1 compression is quite feasible.  An image compressed
  204. 100:1 with JPEG takes up the same space as a full-color one-tenth-scale
  205. thumbnail image, yet it retains much more detail than such a thumbnail.
  206.  
  207. For comparison, a GIF version of the same image would start out by
  208. sacrificing most of the color information to reduce the image to 256 colors
  209. (8 bits/pixel).  This provides 3:1 compression.  GIF has additional "LZW"
  210. compression built in, but LZW doesn't work very well on typical photographic
  211. data; at most you may get 5:1 compression overall, and it's not at all
  212. uncommon for LZW to be a net loss (i.e., less than 3:1 overall compression).
  213. LZW *does* work well on simpler images such as line drawings, which is why
  214. GIF handles that sort of image so well.  When a JPEG file is made from
  215. full-color photographic data, using a quality setting just high enough to
  216. prevent visible loss, the JPEG will typically be a factor of four or five
  217. smaller than a GIF file made from the same data.
  218.  
  219. Gray-scale images do not compress by such large factors.  Because the human
  220. eye is much more sensitive to brightness variations than to hue variations,
  221. JPEG can compress hue data more heavily than brightness (gray-scale) data.
  222. A gray-scale JPEG file is generally only about 10%-25% smaller than a
  223. full-color JPEG file of similar visual quality.  But the uncompressed
  224. gray-scale data is only 8 bits/pixel, or one-third the size of the color
  225. data, so the calculated compression ratio is much lower.  The threshold of
  226. visible loss is often around 5:1 compression for gray-scale images.
  227.  
  228. The exact threshold at which errors become visible depends on your viewing
  229. conditions.  The smaller an individual pixel, the harder it is to see an
  230. error; so errors are more visible on a computer screen (at 70 or so
  231. dots/inch) than on a high-quality color printout (300 or more dots/inch).
  232. Thus a higher-resolution image can tolerate more compression ... which is
  233. fortunate considering it's much bigger to start with.  The compression
  234. ratios quoted above are typical for screen viewing.  Also note that the
  235. threshold of visible error varies considerably across images.
  236.  
  237. ------------------------------
  238.  
  239. Subject: [5] What are good "quality" settings for JPEG?
  240.  
  241. Most JPEG compressors let you pick a file size vs. image quality tradeoff by
  242. selecting a quality setting.  There seems to be widespread confusion about
  243. the meaning of these settings.  "Quality 95" does NOT mean "keep 95% of the
  244. information", as some have claimed.  The quality scale is purely arbitrary;
  245. it's not a percentage of anything.
  246.  
  247. In fact, quality scales aren't even standardized across JPEG programs.
  248. The quality settings discussed in this article apply to the free IJG JPEG
  249. software (described in part 2), and to many programs based on it.  Some
  250. other JPEG implementations use completely different quality scales; for
  251. instance, Apple uses a scale running from 0-4, not 0-100.  A few programs
  252. even use a scale running in the opposite direction, with higher numbers
  253. indicating lower image quality (more compression).  Other programs don't
  254. use a numeric scale at all, just "high"/"medium"/"low" style choices.
  255. Fortunately, this confusion doesn't prevent different implementations from
  256. exchanging JPEG files.  But you do need to keep in mind that quality scales
  257. can vary from one JPEG-creating program to another.
  258.  
  259. In most cases the user's goal is to pick the lowest quality setting, or
  260. smallest file size, that decompresses into an image indistinguishable from
  261. the original.  This setting will vary from one image to another and from one
  262. observer to another, but here are some rules of thumb.
  263.  
  264. For good-quality, full-color source images, the default IJG quality setting
  265. (Q 75) is very often the best choice.  This setting is about the lowest you
  266. can go without expecting to see defects in a typical image.  Try Q 75 first;
  267. if you see defects, then go up.
  268.  
  269. If the image was less than perfect quality to begin with, you might be able
  270. to drop down to Q 50 without objectionable degradation.  On the other hand,
  271. you might need to go to a *higher* quality setting to avoid further loss.
  272. This is often necessary if the image contains dithering or moire patterns
  273. (see "[9] What are some rules of thumb for converting GIF images to JPEG?").
  274.  
  275. Except for experimental purposes, never go above about Q 95; using Q 100
  276. will produce a file two or three times as large as Q 95, but of hardly any
  277. better quality.  Q 100 is a mathematical limit rather than a useful setting.
  278. If you see a file made with Q 100, it's a pretty sure sign that the maker
  279. didn't know what he/she was doing.
  280.  
  281. If you want a very small file (say for preview or indexing purposes) and are
  282. prepared to tolerate large defects, a Q setting in the range of 5 to 10 is
  283. about right.  Q 2 or so may be amusing as "op art".  (It's worth mentioning
  284. that the current IJG software is not optimized for such low quality factors.
  285. Future versions may achieve better image quality for the same file size at
  286. low quality settings.)
  287.  
  288. If your image contains sharp colored edges, you may notice slight fuzziness
  289. or jagginess around such edges no matter how high you make the quality
  290. setting.  This can be suppressed, at a price in file size, by turning off
  291. chroma downsampling in the compressor.  The IJG encoder regards downsampling
  292. as a separate option which you can turn on or off independently of the Q
  293. setting.  With the "cjpeg" program, the command line switch "-sample 1x1"
  294. turns off downsampling; other programs based on the IJG library may have
  295. checkboxes or other controls for downsampling.  Other JPEG implementations
  296. may or may not provide user control of downsampling.  Adobe Photoshop, for
  297. example, automatically switches off downsampling at its higher quality
  298. settings.  On most photographic images, we recommend leaving downsampling
  299. on, because it saves a significant amount of space at little or no visual
  300. penalty.
  301.  
  302. For images being used on the World Wide Web, it's often a good idea to
  303. give up a small amount of image quality in order to reduce download time.
  304. Quality settings around 50 are often perfectly acceptable on the Web.
  305. In fact, a user viewing such an image on a browser with a 256-color display
  306. is unlikely to be able to see any difference from a higher quality setting,
  307. because the browser's color quantization artifacts will swamp any
  308. imperfections in the JPEG image itself.  It's also worth knowing that
  309. current progressive-JPEG-making programs use default progression sequences
  310. that are tuned for quality settings around 50-75: much below 50, the early
  311. scans will look really bad, while much above 75, the later scans won't
  312. contribute anything noticeable to the picture.
  313.  
  314. ------------------------------
  315.  
  316. Subject: [6] Where can I get JPEG software?
  317.  
  318. See part 2 of this FAQ for recommendations about programs for particular
  319. systems.  Part 2 also tells where to find free C source code for
  320. implementing JPEG, in case you want to write your own programs using JPEG.
  321.  
  322. The comp.graphics.* FAQs and the alt.binaries.pictures FAQ are more general
  323. sources of information about graphics programs available on the Internet
  324. (see "[21] Where are FAQ lists archived?").
  325.  
  326. ------------------------------
  327.  
  328. Subject: [7] How do I view JPEG images posted on Usenet?
  329.  
  330. Image files posted on the alt.binaries.pictures.* newsgroups are usually
  331. "uuencoded".  Uuencoding converts binary image data into text that can
  332. safely be posted.  Most posters also divide large posts into multiple parts,
  333. since some news software can't cope with big articles.  Before your viewer
  334. will recognize the image, you must combine the parts into one file and run
  335. the text through a uudecode program.  (This is all true for GIF as well as
  336. JPEG, by the way.)  There are programs available to automate this process.
  337.  
  338. For more info see the alt.binaries.pictures FAQ, which is available from
  339. rtfm.mit.edu:/pub/usenet/news.answers/pictures-faq/part[1-3]
  340. (see also "[21] Where are FAQ lists archived?").
  341.  
  342. ------------------------------
  343.  
  344. Subject: [8] What is color quantization?
  345.  
  346. Most people don't have full-color (24 bit per pixel) display hardware.
  347. Typical display hardware stores 8 or fewer bits per pixel, so it can display
  348. 256 or fewer distinct colors at a time.  To display a full-color image, the
  349. computer must choose an appropriate set of representative colors and map the
  350. image into these colors.  This process is called "color quantization".
  351. (This is something of a misnomer; "color selection" or "color reduction"
  352. would be a better term.  But we're stuck with the standard usage.)
  353.  
  354. Clearly, color quantization is a lossy process.  It turns out that for most
  355. images, the details of the color quantization algorithm have *much* more
  356. impact on the final image quality than do any errors introduced by JPEG
  357. itself (except at the very lowest JPEG quality settings).  Making a good
  358. color quantization method is a black art, and no single algorithm is best
  359. for all images.
  360.  
  361. Since JPEG is a full-color format, displaying a color JPEG image on
  362. 8-bit-or-less hardware requires color quantization.  The speed and image
  363. quality of a JPEG viewer running on such hardware are largely determined by
  364. its quantization algorithm.  Depending on whether a quick-and-dirty or
  365. good-but-slow method is used, you'll see great variation in image quality
  366. among viewers on 8-bit displays, much more than occurs on 24-bit displays.
  367.  
  368. On the other hand, a GIF image has already been quantized to 256 or fewer
  369. colors.  (A GIF always has a specific number of colors in its palette, and
  370. the format doesn't allow more than 256 palette entries.)  GIF has the
  371. advantage that the image maker precomputes the color quantization, so
  372. viewers don't have to; this is one of the things that make GIF viewers
  373. faster than JPEG viewers.  But this is also the *disadvantage* of GIF:
  374. you're stuck with the image maker's quantization.  If the maker quantized to
  375. a different number of colors than what you can display, you'll either waste
  376. display capability or else have to requantize to reduce the number of colors
  377. (which usually results in much poorer image quality than quantizing once
  378. from a full-color image).  Furthermore, if the maker didn't use a
  379. high-quality color quantization algorithm, you're out of luck --- the image
  380. is ruined.
  381.  
  382. For this reason, JPEG promises significantly better image quality than GIF
  383. for all users whose machines don't match the image maker's display hardware.
  384. JPEG's full color image can be quantized to precisely match the viewer's
  385. display hardware.  Furthermore, you will be able to take advantage of future
  386. improvements in quantization algorithms, or purchase better display
  387. hardware, to get a better view of JPEG images you already have.  With a GIF,
  388. you're stuck forevermore with what was sent.
  389.  
  390. A growing number of people have better-than-8-bit display hardware already:
  391. 15-bit "hi-color" PC displays, true 24-bit displays on workstations and
  392. Macintoshes, etc.  For these people, GIF is already obsolete, as it cannot
  393. represent an image to the full capabilities of their display.  JPEG images
  394. can drive these displays much more effectively.
  395.  
  396. In short, JPEG is an all-around better choice than GIF for representing
  397. photographic images in a machine-independent fashion.
  398.  
  399.  
  400. It's sometimes thought that a JPEG converted from a GIF shouldn't require
  401. color quantization.  This is false: even when you feed a 256-or-less-color
  402. GIF into JPEG, what comes out of the decompressor is not 256 colors, but
  403. thousands of colors.  This happens because JPEG's lossiness affects each
  404. pixel a little differently, so two pixels that started with identical colors
  405. will usually come out with slightly different colors.  Considering the whole
  406. image, each original color gets "smeared" into a group of nearby colors.
  407. Therefore quantization is always required to display a color JPEG on a
  408. colormapped display, regardless of the image source.
  409.  
  410. The same effect makes it nearly meaningless to talk about the number of
  411. colors used by a JPEG image.  Even if you tried to count the number of
  412. distinct pixel values, different JPEG decoders would give you different
  413. results because of roundoff error differences.  I occasionally see posted
  414. images described as "256-color JPEG".  This tells me that the poster
  415. (a) hasn't read this FAQ and (b) probably converted the JPEG from a GIF.
  416. JPEGs can be classified as color or gray-scale, but number of colors just
  417. isn't a useful concept for JPEG, any more than it is for a real photograph.
  418.  
  419. ------------------------------
  420.  
  421. Subject: [9] What are some rules of thumb for converting GIF images to JPEG?
  422.  
  423. Converting GIF files to JPEG is a tricky business --- you are piling one set
  424. of limitations atop a quite different set, and the results can be awful.
  425. Certainly a JPEG made from a GIF will never be as good as a JPEG made from
  426. true 24-bit color data.  But if what you've got is GIFs, and you need to
  427. save space, here are some hints for getting the best results.
  428.  
  429. With care and a clean source image, it's often possible to make a JPEG of
  430. quality equivalent to the GIF.  This does not mean that the JPEG looks
  431. pixel-for-pixel identical to the GIF --- it won't.  Especially not on an
  432. 8-bit display, because the color quantization process used to display the
  433. JPEG probably won't quite match the quantization process used to make the
  434. GIF from the original data (see "[8] What is color quantization?").  But
  435. remember that the GIF itself is not all that faithful to the full-color
  436. original, if you look at individual pixels.  Looking at the overall image,
  437. a converted JPEG can look as good as its GIF source.  Some people claim that
  438. on 24-bit displays, a carefully converted JPEG can actually look better than
  439. the GIF source, because dither patterns have been eliminated.  (More about
  440. dithering in a moment.)
  441.  
  442. On the other hand, JPEG conversion absolutely *will* degrade an unsuitable
  443. image or one that is converted carelessly.  If you are not willing to take
  444. the amount of trouble suggested below, you're much better off leaving your
  445. GIF images alone.  Simply cranking the JPEG quality setting up to a very
  446. high value wastes space (which defeats the whole point of the exercise, no?)
  447. and some images will be degraded anyway.
  448.  
  449. The first rule is never to convert an image that's not appropriate for JPEG
  450. (see "[3] When should I use JPEG, and when should I stick with GIF?").
  451. Large, high-visual-quality photographic images are usually the best source
  452. material.  And they take up lots of space in GIF form, so they offer
  453. significant potential space savings.  (A good rule of thumb is not to bother
  454. converting any GIF that's much under 100 Kbytes; the potential savings isn't
  455. worth the hassle.)
  456.  
  457. The second rule is to know where the image came from.  Repeated GIF<=>JPEG
  458. conversions are guaranteed to turn an image into mush, because you pay a
  459. quality-loss price on each round trip.  Don't reconvert images that have
  460. been converted before.
  461.  
  462. The third rule is to get rid of the border.  Many people have developed
  463. an odd habit of putting a large single-color border around a GIF image.
  464. While useless, this is nearly free in terms of storage cost in GIF files.
  465. It is *not* free in JPEG files, either in storage space or in decoding time.
  466. Worse, the sharp border boundary can create visible artifacts (ghost edges).
  467. Furthermore, when viewing a bordered JPEG on an 8-bit display, the quantizer
  468. will think the border color is important because there's so much of it, and
  469. hence will waste color palette entries on the border, thus actually reducing
  470. the displayed quality of the main part of the image!  So do yourself a favor
  471. and crop off any border before JPEGing.
  472.  
  473. The final rule is to look at each JPEG, to make sure you are happy with it,
  474. before throwing away the corresponding GIF.  This will give you a chance to
  475. re-do the conversion with a higher quality setting if necessary.  Also
  476. compare the file sizes --- if the image isn't suitable JPEG material, a JPEG
  477. file of reasonable quality may come out *larger* than the GIF.
  478.  
  479. Gray-scale images usually convert without much problem.  When using cjpeg,
  480. be sure to use the -gray switch.  (Otherwise, cjpeg treats a GIF as color
  481. data; this works, but it wastes space and time if the image is really only
  482. gray-scale.)  Quality settings around the default (75) are usually fine.
  483.  
  484. Color images are much trickier.  Color GIFs of photographic images are
  485. usually "dithered" to fool your eye into seeing more than the 256 colors
  486. that GIF can actually store.  If you enlarge the image, you will find that
  487. adjacent pixels are often of significantly different colors; at normal size
  488. the eye averages these pixels together to produce the illusion of an
  489. intermediate color value.  The trouble with dithering is that, to JPEG, it
  490. looks like high-spatial-frequency color noise; and JPEG can't compress noise
  491. very well.  The resulting JPEG file is both larger and of lower image
  492. quality than what you would have gotten from JPEGing the original full color
  493. image (if you had it).  To get around this, you need to "smooth" the GIF
  494. image before compression.  Smoothing averages together nearby pixels, thus
  495. approximating the color that you thought you saw anyway, and in the process
  496. getting rid of the rapid color changes that give JPEG trouble.  Proper use
  497. of smoothing will both reduce the size of the compressed file and give you a
  498. better-looking output image than you'd get without smoothing.
  499.  
  500. With the IJG JPEG software (cjpeg or derived programs), a simple smoothing
  501. capability is built in.  Try "-smooth 10" or so when converting GIFs.
  502. Values of 10 to 25 seem to work well for high-quality GIFs.  GIFs with
  503. heavy-handed dithering may require larger smoothing factors.  (If you can
  504. see regular fine-scale patterns on the GIF image even without enlargement,
  505. then strong smoothing is definitely called for.)  Too large a smoothing
  506. factor will blur the output image, which you don't want.  If you are an
  507. image processing wizard, you can also do smoothing with a separate filtering
  508. program, but appropriate use of such tools is beyond the scope of this FAQ.
  509.  
  510. Quality settings around 85 (a bit higher than default) usually work well
  511. when converting color GIFs, assuming that you've picked a good smoothing
  512. factor.  You may need still higher quality settings if you can't hide the
  513. dithering pattern with a reasonable smoothing factor.  Really badly dithered
  514. GIFs are best left as GIFs.
  515.  
  516. Don't expect JPEG files converted from GIFs to be as small as those created
  517. directly from full-color originals.  The dithering noise wastes space, but
  518. you won't be able to smooth away all the noise without blurring the image.
  519. Typically, a good-quality converted JPEG will be one-half to one-third the
  520. size of the GIF file, not one-fourth as suggested in section 4.  If the JPEG
  521. comes out much more than half the size of the GIF, this is a good sign that
  522. the image shouldn't be converted at all.
  523.  
  524. The upshot of all this is that "cjpeg -quality 85 -smooth 10" is probably a
  525. good starting point for converting color GIFs.  But if you care about the
  526. image, you'll want to check the results and maybe try a few other settings.
  527. Blindly converting a large GIF library at this or any other setting is a
  528. recipe for disaster.
  529.  
  530. ------------------------------
  531.  
  532. Subject: [10] Does loss accumulate with repeated compression/decompression?
  533.  
  534. It would be nice if, having compressed an image with JPEG, you could
  535. decompress it, manipulate it (crop off a border, say), and recompress it
  536. without any further image degradation beyond what you lost initially.
  537. Unfortunately THIS IS NOT THE CASE.  In general, recompressing an altered
  538. image loses more information.  Hence it's important to minimize the number
  539. of generations of JPEG compression between initial and final versions of an
  540. image.
  541.  
  542. It turns out that if you decompress and recompress an image at the same
  543. quality setting first used, little or no further degradation occurs.  This
  544. means that you can make local modifications to a JPEG image without material
  545. degradation of other areas of the image.  (The areas you change will still
  546. degrade, however.)  Counterintuitively, this works better the lower the
  547. quality setting.  But you must use *exactly* the same setting, or all bets
  548. are off.  Also, the decompressed image must be saved in a full-color format;
  549. if you do JPEG=>GIF=>JPEG, the color quantization step loses lots of
  550. information.
  551.  
  552. Unfortunately, cropping doesn't count as a local change!  JPEG processes
  553. the image in small blocks, and cropping usually moves the block boundaries,
  554. so that the image looks completely different to JPEG.  You can take
  555. advantage of the low-degradation behavior if you are careful to crop the
  556. top and left margins only by a multiple of the block size (typically 16
  557. pixels), so that the remaining blocks start in the same places.
  558.  
  559. The bottom line is that JPEG is a useful format for archival storage and
  560. transmission of images, but you don't want to use it as an intermediate
  561. format for sequences of image manipulation steps.  Use a lossless 24-bit
  562. format (PPM, PNG, TIFF, etc) while working on the image, then JPEG it when
  563. you are ready to file it away or send it out on the net.  Aside from
  564. avoiding degradation, you will save a lot of compression/decompression time
  565. this way :-).
  566.  
  567. ------------------------------
  568.  
  569. Subject: [11] What is progressive JPEG?
  570.  
  571. A simple or "baseline" JPEG file is stored as one top-to-bottom scan of the
  572. image.  Progressive JPEG divides the file into a series of scans.  The first
  573. scan shows the image at the equivalent of a very low quality setting, and
  574. therefore it takes very little space.  Following scans gradually improve the
  575. quality.  Each scan adds to the data already provided, so that the total
  576. storage requirement is about the same as for a baseline JPEG image of the
  577. same quality as the final scan.  (Basically, progressive JPEG is just a
  578. rearrangement of the same data into a more complicated order.)
  579.  
  580. The advantage of progressive JPEG is that if an image is being viewed
  581. on-the-fly as it is transmitted, one can see an approximation to the whole
  582. image very quickly, with gradual improvement of quality as one waits longer;
  583. this is much nicer than a slow top-to-bottom display of the image.  The
  584. disadvantage is that each scan takes about the same amount of computation to
  585. display as a whole baseline JPEG file would.  So progressive JPEG only makes
  586. sense if one has a decoder that's fast compared to the communication link.
  587. (If the data arrives quickly, a progressive-JPEG decoder can adapt by
  588. skipping some display passes.  Hence, those of you fortunate enough to have
  589. T1 or faster net links may not see any difference between progressive and
  590. regular JPEG; but on a modem-speed link, progressive JPEG is great.)
  591.  
  592. Up until recently, there weren't many applications in which progressive JPEG
  593. looked attractive, so it hasn't been widely implemented.  But with the
  594. popularity of World Wide Web browsers running over slow modem links, and
  595. with the ever-increasing horsepower of personal computers, progressive JPEG
  596. has become a win for WWW use.  IJG's free JPEG software (see part 2) now
  597. supports progressive JPEG, and the capability is spreading fast in WWW
  598. browsers and other programs.
  599.  
  600. Except for the ability to provide progressive display, progressive JPEG and
  601. baseline JPEG are basically identical, and they work well on the same kinds
  602. of images.  It is possible to convert between baseline and progressive
  603. representations of an image without any quality loss.  (But specialized
  604. software is needed to do this; conversion by decompressing and recompressing
  605. is *not* lossless, due to roundoff errors.)
  606.  
  607. A progressive JPEG file is not readable at all by a baseline-only JPEG
  608. decoder, so existing software will have to be upgraded before progressive
  609. JPEG can be used widely.  See question 15 in part 2 for the latest news
  610. about which programs support it.
  611.  
  612. ------------------------------
  613.  
  614. Subject: [12] Can I make a transparent JPEG?
  615.  
  616. No.  JPEG does not support transparency and is not likely to do so any time
  617. soon.  It turns out that adding transparency to JPEG would not be a simple
  618. task; read on if you want the gory details.
  619.  
  620. The traditional approach to transparency, as found in GIF and some other
  621. file formats, is to choose one otherwise-unused color value to denote a
  622. transparent pixel.  That can't work in JPEG because JPEG is lossy: a pixel
  623. won't necessarily come out *exactly* the same color that it started as.
  624. Normally, a small error in a pixel value is OK because it affects the image
  625. only slightly.  But if it changes the pixel from transparent to normal or
  626. vice versa, the error would be highly visible and annoying, especially if
  627. the actual background were quite different from the transparent color.
  628.  
  629. A more reasonable approach is to store an alpha channel (transparency
  630. percentage) as a separate color component in a JPEG image.  That could work
  631. since a small error in alpha makes only a small difference in the result.
  632. The problem is that a typical alpha channel is exactly the sort of image
  633. that JPEG does very badly on: lots of large flat areas and sudden jumps.
  634. You'd have to use a very high quality setting for the alpha channel.  It
  635. could be done, but the penalty in file size is large.  A transparent JPEG
  636. done this way could easily be double the size of a non-transparent JPEG.
  637. That's too high a price to pay for most uses of transparency.
  638.  
  639. The only real solution is to combine lossy JPEG storage of the image
  640. with lossless storage of a transparency mask using some other algorithm.
  641. Developing, standardizing, and popularizing a file format capable of
  642. doing that is not a small task.  As far as I know, no serious work is
  643. being done on it; transparency doesn't seem worth that much effort.
  644.  
  645. ------------------------------
  646.  
  647. Subject: [13] Isn't there a lossless JPEG?
  648.  
  649. There's a great deal of confusion on this subject.  The JPEG standard does
  650. include a truly lossless compression algorithm, i.e., one that guarantees
  651. its decompressed output is bit-for-bit identical to the original input.
  652. However, this lossless mode has almost nothing in common with the regular
  653. lossy JPEG algorithm, and it offers much less compression.
  654.  
  655. Lossless JPEG typically compresses full-color data by around 2:1.  Lossless
  656. JPEG works well only on continuous-tone images; it does not provide useful
  657. compression of palette-color images or low-bit-depth images.  (Early results
  658. with the new PNG standard suggest that PNG outcompresses lossless JPEG on
  659. most images.  Once PNG becomes common, lossless JPEG will probably be
  660. obsolete.)
  661.  
  662. There are very few implementations of true lossless JPEG.  The PVRG code
  663. mentioned in part 2 handles lossless JPEG.  Another free implementation
  664. is available from ftp.cs.cornell.edu:/pub/multimed/ljpg.tar.Z.  This is a
  665. smaller program that handles *only* lossless JPEG.
  666.  
  667. Cranking a regular JPEG implementation up to its maximum quality setting
  668. *does not* get you lossless storage; lossless JPEG is a fundamentally
  669. different method.  Even at the maximum possible quality setting, regular
  670. JPEG cannot be lossless because it is subject to roundoff errors in various
  671. calculations.  The roundoff errors are nearly always too small to be seen,
  672. but they will accumulate if you put the image through multiple cycles of
  673. compression.
  674.  
  675. Many implementations won't even let you get to the maximum possible setting,
  676. because it's such an inefficient way to use regular JPEG.  With the IJG JPEG
  677. software, for example, you have to say not only "-quality 100" but also
  678. "-sample 1x1" to eliminate all deliberate loss of information.  The
  679. resulting files are far larger and of only fractionally better quality than
  680. files generated at more reasonable settings.  And they're still slightly
  681. lossy!  If you really need lossless storage, don't try to approximate it
  682. with regular JPEG.
  683.  
  684. ------------------------------
  685.  
  686. Subject: [14] Why all the argument about file formats?
  687.  
  688. Strictly speaking, JPEG refers only to a family of compression algorithms;
  689. it does *not* refer to a specific image file format.  The JPEG committee was
  690. prevented from defining a file format by turf wars within the international
  691. standards organizations.
  692.  
  693. Since we can't actually exchange images with anyone else unless we agree on
  694. a common file format, this leaves us with a problem.  In the absence of
  695. official standards, a number of JPEG program writers have just gone off to
  696. "do their own thing", and as a result their programs aren't compatible with
  697. anyone else's.
  698.  
  699. The closest thing we have to a standard JPEG format is some work that's been
  700. coordinated by people at C-Cube Microsystems.  They have defined two
  701. JPEG-based file formats:
  702.   * JFIF (JPEG File Interchange Format), a "low-end" format that transports
  703.     pixels and not much else.
  704.   * TIFF/JPEG, aka TIFF 6.0, an extension of the Aldus TIFF format.  TIFF is
  705.     a "high-end" format that will let you record just about everything you
  706.     ever wanted to know about an image, and a lot more besides :-).
  707.  
  708. JFIF has emerged as the de-facto standard on Internet, and is what is most
  709. commonly meant by "a JPEG file".  Most JFIF readers are also capable of
  710. handling some not-quite-JFIF-legal variant formats.
  711.  
  712. The TIFF 6.0 spec for incorporating JPEG is not widely implemented, partly
  713. because it has some serious design flaws.  A revised TIFF/JPEG design is now
  714. described by TIFF Technical Note #2; this design will be the one used in
  715. TIFF 7.0.  New implementations of TIFF should use the Tech Note's design for
  716. embedding JPEG, not the TIFF 6.0 design.  (As far as I know, NeXTStep
  717. systems are the only ones making any significant use of TIFF 6.0 style
  718. TIFF/JPEG.)  Even when TIFF/JPEG is stable, it will never be as widely used
  719. as JFIF.  TIFF is far more complex than JFIF, and is generally less
  720. transportable because different vendors often implement slightly different,
  721. nonoverlapping subsets of TIFF.  Adding JPEG to the mix hasn't helped any.
  722.  
  723. Apple's Macintosh QuickTime software uses a JFIF-compatible datastream
  724. wrapped inside the Mac-specific PICT format.  Conversion between JFIF and
  725. PICT/JPEG is pretty straightforward, and several Mac programs are available
  726. to do it (see Mac portion of part 2).  If you have an editor that handles
  727. binary files, you can even strip a PICT/JPEG file down to JFIF by hand; see
  728. the next section for details.
  729.  
  730. News flash: the ISO JPEG committee seems to have won their turf wars.  They
  731. have defined a complete file format spec called SPIFF in the new "Part 3"
  732. extensions to the JPEG standard.  It's pretty late in the game though, so
  733. whether this will have much impact on real-world files remains to be seen.
  734. SPIFF is upward compatible with JFIF, so if it does get widely adopted, most
  735. users probably won't even notice.
  736.  
  737. ------------------------------
  738.  
  739. Subject: [15] How do I recognize which file format I have,
  740.               and what do I do about it?
  741.  
  742. If you have an alleged JPEG file that your software won't read, it's likely
  743. to be HSI format or some other proprietary JPEG-based format.  You can tell
  744. what you have by inspecting the first few bytes of the file:
  745.  
  746. 1.  A JFIF-standard file will start with the four bytes (hex) FF D8 FF E0,
  747.     followed by two variable bytes (often hex 00 10), followed by 'JFIF'.
  748.  
  749. 2.  If you see FF D8 at the start, but not the 'JFIF' marker, you may have a
  750.     "raw JPEG" file.  This is probably decodable as-is by JFIF software ---
  751.     it's worth a try, anyway.
  752.  
  753. 3.  HSI files start with 'hsi1'.  You're out of luck unless you have HSI
  754.     software.  Portions of the file may look like plain JPEG data, but they
  755.     usually won't decompress properly with non-HSI programs.
  756.  
  757. 4.  A Macintosh PICT file, if JPEG-compressed, will have several hundred
  758.     bytes of header (often 726 bytes, but not always) followed by JPEG data.
  759.     Look for the 3-byte sequence (hex) FF D8 FF.  The text 'Photo - JPEG'
  760.     will usually appear shortly before this header, and 'AppleMark' or
  761.     'JFIF' will usually appear shortly after it.  Strip off everything
  762.     before the FF D8 FF and you will usually be able to decode the file.
  763.     (This will fail if the PICT image is divided into multiple "bands";
  764.     fortunately banded PICTs aren't very common.  A banded PICT contains
  765.     multiple JPEG datastreams whose heights add up to the total image
  766.     height.  These need to be stitched back together into one image.
  767.     Bailey Brown has some simple tools for this purpose on a Web page at
  768.     http://www.blarg.net/~bailey/photo-jpeg/photo-jpeg.html.)
  769.  
  770. 5.  If the file came from a Macintosh, it could also be a standard JFIF
  771.     file with a MacBinary header attached.  In this case, the JFIF header
  772.     will appear 128 bytes into the file.  Get rid of the first 128 bytes
  773.     and you're set.
  774.  
  775. 6.  Anything else: it's a proprietary format, or not JPEG at all.  If you
  776.     are lucky, the file may consist of a header and a raw JPEG data stream.
  777.     If you can identify the start of the JPEG data stream (look for FF D8),
  778.     try stripping off everything before that.
  779.  
  780. HSI files used to be rather common in alt.binaries.pictures.* postings,
  781. although thankfully they have gotten less so.  You can spot an HSI posting
  782. by looking at the first few characters of the uuencoded data.  The
  783. characteristic HSI pattern is
  784.     "begin" line
  785.     M:'-I ...
  786. whereas standard JFIF files begin with
  787.     "begin" line
  788.     M_]C_X ...
  789. If you learn to spot the HSI pattern, you can save yourself the trouble
  790. of downloading unusable files.
  791.  
  792. At least one release of HiJaak Pro writes JFIF files that claim to be
  793. revision 2.01.  There is no such spec; the latest JFIF revision is 1.02.
  794. It looks like HiJaak got the high and low bytes backwards.  Unfortunately,
  795. most JFIF readers will give up on encountering these files, because the JFIF
  796. spec defines a major version number change to mean an incompatible format
  797. change.  If there ever *were* a version 2.01, it would be so numbered
  798. because current software could not read it and should not try.  (One wonders
  799. if HiJaak has ever heard of cross-testing with other people's software.)
  800. If you run into one of these misnumbered files, you can fix it with a
  801. binary-file editor, by changing the twelfth byte of the file from 2 to 1.
  802.  
  803. If the file header seems valid, but your decoder chokes with a complaint
  804. like "Unsupported marker type 0xC2", then you have a progressive JPEG file
  805. and a non-progressive-capable decoder.  See part 2 of this FAQ for
  806. information about more up-to-date programs.
  807.  
  808. ------------------------------
  809.  
  810. Subject: [16] How does JPEG work?
  811.  
  812. You can find an introduction and references for further reading in the
  813. comp.compression FAQ, which is available from the news.answers archive at
  814. rtfm.mit.edu, in files /pub/usenet/news.answers/compression-faq/part[1-3]
  815. (see also "[21] Where are FAQ lists archived?").
  816.  
  817. The comp.compression FAQ is also a good starting point for information on
  818. other state-of-the-art image compression methods, such as wavelets and
  819. fractals.  A quick comparison: wavelets are likely to be the basis of the
  820. next generation of image-compression standards, but they are perhaps 10
  821. years behind JPEG in the standardization pipeline.  Fractals have been
  822. terribly over-hyped by their chief commercial proponent, and it's difficult
  823. to say what their true capabilities are.
  824.  
  825. ------------------------------
  826.  
  827. Subject: [17] What about arithmetic coding?
  828.  
  829. The JPEG spec defines two different "back end" modules for the final output
  830. of compressed data: either Huffman coding or arithmetic coding is allowed.
  831. The choice has no impact on image quality, but arithmetic coding usually
  832. produces a smaller compressed file.  On typical images, arithmetic coding
  833. produces a file 5 to 10 percent smaller than Huffman coding.  (All the
  834. file-size numbers previously cited are for Huffman coding.)
  835.  
  836. Unfortunately, the particular variant of arithmetic coding specified by the
  837. JPEG standard is subject to patents owned by IBM, AT&T, and Mitsubishi.
  838. Thus *you cannot legally use JPEG arithmetic coding* unless you obtain
  839. licenses from these companies.  (Patent law's "experimental use" exception
  840. allows people to test a patented method in the context of scientific
  841. research, but any commercial or routine personal use is infringement.)
  842.  
  843. I recommend that people not use JPEG arithmetic coding; the space savings
  844. isn't great enough to justify the potential legal hassles.  In particular,
  845. arithmetic coding *should not* be used for any images to be exchanged on
  846. the Internet.  Even if you don't care about US patent law, other folks do.
  847.  
  848. ------------------------------
  849.  
  850. Subject: [18] Could an FPU speed up JPEG?  How about a DSP chip?
  851.  
  852. Since JPEG is so compute-intensive, many people suggest that using an
  853. FPU chip (a math coprocessor) should speed it up.  This is not so.
  854. Most production-quality JPEG programs use only integer arithmetic and so
  855. they are unaffected by the presence or absence of floating-point hardware.
  856.  
  857. It is possible to save a few math operations by doing the DCT step in
  858. floating point.  On most PC-class machines, FP operations are enough slower
  859. than integer operations that the overall speed is still much worse with FP.
  860. Some high-priced workstations and supercomputers have fast enough FP
  861. hardware to make an FP DCT method be a win.
  862.  
  863. DSP (digital signal processing) chips are ideally suited for fast repetitive
  864. integer arithmetic, so programming a DSP to do JPEG can yield significant
  865. speedups.  DSPs are available as add-ons for some PCs and workstations;
  866. if you have such hardware, look for a JPEG program that can exploit it.
  867.  
  868. ------------------------------
  869.  
  870. Subject: [19] Isn't there an M-JPEG standard for motion pictures?
  871.  
  872. As was stated in section 1, JPEG is only for still images.  Nonetheless,
  873. you will frequently see references to "motion JPEG" or "M-JPEG" for video.
  874. *There is no such standard*.  Various vendors have applied JPEG to
  875. individual frames of a video sequence, and have called the result "M-JPEG".
  876. Unfortunately, in the absence of any recognized standard, they've each done
  877. it differently.  The resulting files are usually not compatible across
  878. different vendors.
  879.  
  880. MPEG is the recognized standard for motion picture compression.  It uses
  881. many of the same techniques as JPEG, but adds inter-frame compression to
  882. exploit the similarities that usually exist between successive frames.
  883. Because of this, MPEG typically compresses a video sequence by about a
  884. factor of three more than "M-JPEG" methods can for similar quality.
  885. The disadvantages of MPEG are (1) it requires far more computation to
  886. generate the compressed sequence (since detecting visual similarities is
  887. hard for a computer), and (2) it's difficult to edit an MPEG sequence on a
  888. frame-by-frame basis (since each frame is intimately tied to the ones around
  889. it).  This latter problem has made "M-JPEG" methods rather popular for video
  890. editing products.
  891.  
  892. It's a shame that there isn't a recognized M-JPEG standard.  But there
  893. isn't, so if you buy a product identified as "M-JPEG", be aware that you
  894. are probably locking yourself into that one vendor.
  895.  
  896. Recently, both Microsoft and Apple have started pushing (different :-()
  897. "standard" M-JPEG formats.  It remains to be seen whether either of these
  898. efforts will have much impact on the current chaos.  Both companies were
  899. spectacularly unsuccessful in getting anyone else to adopt their ideas about
  900. still-image JPEG file formats, so I wouldn't assume that anything will
  901. happen this time either...
  902.  
  903. See the MPEG FAQ for more information about MPEG.
  904.  
  905. ------------------------------
  906.  
  907. Subject: [20] What if I need more than 8-bit precision?
  908.  
  909. Baseline JPEG stores images with 8 bits per color sample, in other words
  910. 24 bits per pixel for RGB images, 8 bits/pixel for grayscale, 32 bits/pixel
  911. for CMYK, etc.  There is an extension that stores 12 bits/sample for
  912. applications that need higher accuracy.  Medical images, for example, are
  913. often 12-bit grayscale.  The 12-bit extension is not very widely supported,
  914. however.  One package that does support it is the free IJG source code (see
  915. part 2 of this FAQ).
  916.  
  917. For lossless JPEG, the standard permits any data precision between 2 and 16
  918. bits per sample, but high-precision lossless JPEG is even less widely
  919. supported than high-precision lossy JPEG.  I don't know of any working
  920. noncommercial implementations.  (The Cornell lossless JPEG coder tries to
  921. support it, but reportedly has bugs with data of more than 8 bits.)
  922.  
  923. ------------------------------
  924.  
  925. Subject: [21] Where are FAQ lists archived?
  926.  
  927. Many FAQs are crossposted to news.answers.  Well-run netnews sites will have
  928. the latest versions available in that newsgroup.  However, there are a *lot*
  929. of postings in news.answers, and they can be hard to sort through.
  930.  
  931. The latest versions of news.answers postings are archived at rtfm.mit.edu.
  932. You can retrieve this FAQ by FTP as /pub/usenet/news.answers/jpeg-faq/part1
  933. and /pub/usenet/news.answers/jpeg-faq/part2.  With a Web browser, use the
  934. URL ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/.  If you have no
  935. FTP access, send e-mail to mail-server@rtfm.mit.edu containing the lines
  936.     send usenet/news.answers/jpeg-faq/part1
  937.     send usenet/news.answers/jpeg-faq/part2
  938. (If you don't get a reply, the server may be misreading your return address;
  939. add a line such as "path myname@mysite" to specify your correct e-mail
  940. address to reply to.)  For more info about the FAQ archive, retrieve the
  941. file rtfm.mit.edu:/pub/usenet/news.answers/news-answers/introduction.
  942.  
  943. The same FAQs are also available in the World Wide Web, although you should
  944. be wary of out-of-date copies at some sites.  Well-run WWW FAQ archive sites
  945. include http://www.lib.ox.ac.uk/internet/news/ and
  946. http://www.cs.ruu.nl/cgi-bin/faqwais.
  947.  
  948. -- 
  949.             tom lane
  950.             organizer, Independent JPEG Group
  951.             tgl@netcom.com or tgl@sss.pgh.pa.us
  952.  
  953. From tgl@netcom.com Sun Jul 21 17:53:14 1996
  954. Newsgroups: comp.graphics.misc,comp.infosystems.www.authoring.images,alt.graphics.pixutils,alt.binaries.pictures.utilities,alt.binaries.pictures.d,alt.binaries.pictures.erotica.d,comp.answers,alt.answers,news.answers
  955. Path: szdc!zdc!zdc-e!uunet!in2.uu.net!cs.utexas.edu!howland.reston.ans.net!ixnews1.ix.netcom.com!netcom.com!tgl
  956. From: tgl@netcom.com (Tom Lane)
  957. Subject: JPEG image compression FAQ, part 2/2
  958. Message-ID: <jpeg-faq-p2_837989585@netcom.com>
  959. Followup-To: comp.graphics.misc
  960. Summary: System-specific hints and program recommendations for JPEG images
  961. Keywords: JPEG, image compression, FAQ, JPG, JFIF
  962. Supersedes: <jpeg-faq-p2_836768094@netcom.com>
  963. Reply-To: jpeg-info@uunet.uu.net
  964. Organization: Independent JPEG Group
  965. References: <jpeg-faq-p1_837989585@netcom.com>
  966. Date: Sun, 21 Jul 1996 22:53:14 GMT
  967. Approved: news-answers-request@MIT.Edu
  968. Expires: Sun, 18 Aug 1996 22:53:05 GMT
  969. Lines: 761
  970. Sender: tgl@netcom21.netcom.com
  971. Xref: szdc comp.graphics.misc:7855 comp.infosystems.www.authoring.images:9644 alt.graphics.pixutils:2000 alt.binaries.pictures.utilities:5041 alt.binaries.pictures.d:2417 alt.binaries.pictures.erotica.d:7726 comp.answers:4418 alt.answers:5233 news.answers:18999
  972.  
  973. Archive-name: jpeg-faq/part2
  974. Posting-Frequency: every 14 days
  975. Last-modified: 21 July 1996
  976.  
  977. This article answers Frequently Asked Questions about JPEG image compression.
  978. This is part 2, covering system-specific hints and program recommendations
  979. for a variety of computer systems.  Part 1 covers general questions and
  980. answers about JPEG.  As always, suggestions for improvement of this FAQ are
  981. welcome.
  982.  
  983. New since version of 7 July 1996:
  984.   * New entry for ThumbsPlus (image browser/cataloger for Windows).
  985.   * New version of Image Alchemy (1.8).
  986.  
  987.  
  988. This article includes the following sections:
  989.  
  990. General info:
  991.  
  992. [1] What is covered in this FAQ?
  993. [2] How do I retrieve these programs?
  994.  
  995. Programs and hints for specific systems:
  996.  
  997. [3] X Windows
  998. [4] Unix (without X)
  999. [5] MS-DOS
  1000. [6] Microsoft Windows
  1001. [7] OS/2
  1002. [8] Macintosh
  1003. [9] Amiga
  1004. [10] Atari ST
  1005. [11] Acorn Archimedes
  1006. [12] NeXT
  1007. [13] Other systems
  1008.  
  1009. Source code for JPEG:
  1010.  
  1011. [14] Freely available source code for JPEG
  1012.  
  1013. Miscellaneous:
  1014.  
  1015. [15] Which programs support progressive JPEG?
  1016. [16] Where are FAQ lists archived?
  1017.  
  1018.  
  1019. This article and its companion are posted every 2 weeks.  If you can't find
  1020. part 1, you can get it from the news.answers archive at rtfm.mit.edu
  1021. (see "[16] Where are FAQ lists archived?"). This article changes frequently;
  1022. get a new copy if the one you are reading is more than a couple months old.
  1023.  
  1024. ------------------------------
  1025.  
  1026. Subject: [1] What is covered in this FAQ?
  1027.  
  1028. This list describes programs that are of particular interest to JPEG users.
  1029. For the most part, I concentrate on viewers, since a viewer program is the
  1030. first thing you'll need.  Some general image-editing programs are listed
  1031. too, especially if they are useful as plain viewers (meaning that they can
  1032. load and display an image as quickly and easily as a dedicated viewer).
  1033. Programs that convert JPEG to and from other image file formats are also
  1034. covered.
  1035.  
  1036. I list only freeware and shareware programs that are available on the
  1037. Internet by FTP.  Commercial products are intentionally excluded, to keep
  1038. the list to a reasonable size and to avoid any appearance of advertising.
  1039. Also, I try to list only programs that are popular among Usenet users, as
  1040. indicated by comments and recommendations in news articles.  I have no
  1041. access to many of the types of systems covered here, so I have to rely on
  1042. what other people say about a program to decide whether to list it.  If you
  1043. have an opinion pro or con on any program, I'd appreciate hearing it.
  1044.  
  1045. This FAQ also includes a few hints that are specific to a machine or
  1046. program, and thus don't belong in the general discussion of part 1.
  1047.  
  1048. ------------------------------
  1049.  
  1050. Subject: [2] How do I retrieve these programs?
  1051.  
  1052. All the files mentioned in this FAQ are available by standard Internet FTP.
  1053. If you don't know how to use FTP, please read the article "Anonymous FTP
  1054. FAQ List", which you can get by sending e-mail to mail-server@rtfm.mit.edu
  1055. with the single line "send usenet/news.answers/ftp-list/faq" in the body.
  1056. (See also "[16] Where are FAQ lists archived?")  This section gives some
  1057. quick reminders which are not meant as a substitute for reading the FTP FAQ.
  1058.  
  1059. If you do not have direct access to FTP, you can use an "ftpmail" server to
  1060. obtain files by e-mail.  See the FTP FAQ for details.
  1061.  
  1062. If you use a WWW browser such as Mosaic or Lynx, it will do FTP for you.
  1063. To retrieve a file described here as "site.name:/path/to/file", tell the
  1064. browser to open the URL "ftp://site.name/path/to/file".  (If you are reading
  1065. this FAQ in the WWW FAQ archive, the file names should appear as links that
  1066. you can just click on.)  Don't forget to set save-to-disk mode first.
  1067.  
  1068. Many of the pointers given here refer to popular central archive sites,
  1069. such as ftp.simtel.net for DOS software or sumex-aim.stanford.edu for Mac.
  1070. These sites are often overloaded, and are likely to refuse your connection
  1071. request when they are busy.  You can try again at a less popular time of
  1072. day, or you can look for a "mirror site".  Most central archive sites have
  1073. groups of mirror sites that keep copies of their files.  Find out the name
  1074. of the mirror site closest to you, and visit that site instead; it's good
  1075. net citizenship and you'll get faster response.  Check the FAQs for the
  1076. newsgroups specific to your system type to find lists of mirror sites.
  1077. (The archive site may list some mirror sites in its connection-refused error
  1078. message.  Unfortunately, some FTP programs won't show you the whole message.
  1079. WWW browsers are often bad about this.)
  1080.  
  1081. If you are able to reach the archive site, but the file you want doesn't
  1082. exist, most likely it's been replaced by a newer version.  Get a directory
  1083. listing of the directory that's supposed to contain the file, and look for
  1084. a file with a similar name but a higher version number.  (If you find an
  1085. out-of-date reference in a *current* version of the JPEG FAQ, I'd
  1086. appreciate hearing about it by e-mail.)
  1087.  
  1088. Practically all of the files listed here are compressed archive files.
  1089. This means you need to retrieve them in binary mode.  (WWW browsers do this
  1090. automatically, but many older FTP programs must be told to use binary mode.)
  1091. Once you've got the archive file, you'll need a decompressor/dearchiver
  1092. to extract the program and documentation files inside it.  Check the FAQs
  1093. for your system type to find out where to get dearchiver programs.
  1094.  
  1095. ------------------------------
  1096.  
  1097. Subject: [3] X Windows
  1098.  
  1099. XV is an excellent viewer for JPEG, GIF, and many other image formats.
  1100. It can also do format conversion and some simple image manipulations.
  1101. Get it from ftp.cis.upenn.edu:/pub/xv/xv-3.10a.tar.gz.  Shareware, $25.
  1102. Version 3.10 has some nifty new features, and it loads JPEGs noticeably
  1103. faster than any prior version.  If you're still using version 2.anything,
  1104. it's definitely time to upgrade.  HINT: if you have an 8-bit display then
  1105. you need to "lock 8-bit mode" to get decent display of JPEG images.  (But
  1106. do NOT do this if you intend to resave the image, because it'll be written
  1107. from the 8-bit version, thus costing you image quality.)  You can set this
  1108. mode to be default by adding "xv.force8: true" to your .Xdefaults file.
  1109.  
  1110. Another excellent choice is John Cristy's free ImageMagick package,
  1111. ftp.x.org:/contrib/applications/ImageMagick/ImageMagick-3.7.1.tar.gz.  This
  1112. package handles many image processing and conversion tasks.  The ImageMagick
  1113. viewer handles 24-bit displays correctly; for colormapped displays, it does
  1114. better (though slower) color quantization than XV or the basic IJG JPEG
  1115. software.
  1116.  
  1117. Both of the above are large, complex packages.  If you just want a simple
  1118. image viewer, try xloadimage or xli.  xloadimage views and converts many
  1119. image file types including JPEG.  Version 4.1 has better JPEG support than
  1120. prior versions and is easier to install.  xloadimage is free and available
  1121. from ftp.x.org:/R5contrib/xloadimage.4.1.tar.gz.  xli is a variant version
  1122. of xloadimage; xli is slightly better as an interactive viewer, but it can't
  1123. be used as a converter, and it supports fewer file formats.  xli is also
  1124. free and available from ftp.x.org:/contrib/applications/xli.1.16.tar.gz.
  1125.  
  1126. ------------------------------
  1127.  
  1128. Subject: [4] Unix (without X)
  1129.  
  1130. If you want a command-line JPEG conversion program, see the IJG source code
  1131. described in section 14.  (This code is included as a subdirectory in most
  1132. of the X programs described above, although they may not have the latest
  1133. version.)
  1134.  
  1135. Non-X viewers are hard to come by, since they are very hardware dependent.
  1136. Linux users with VGA/SVGA displays may like zgv.  Version 2.7 is available
  1137. from sunsite.unc.edu:/pub/Linux/apps/graphics/viewers/zgv2.7-bin.tar.gz.
  1138. (Several other alternatives are available in the same directory.)
  1139. If you use a less popular platform, you're probably out of luck.
  1140.  
  1141. ------------------------------
  1142.  
  1143. Subject: [5] MS-DOS
  1144.  
  1145. This covers plain DOS; for Windows or OS/2 programs, see the next sections.
  1146.  
  1147. NOTE ABOUT SIMTEL FILES: The largest Internet collection of PC-related
  1148. programs is the Simtel archives (named for the original archive site, now
  1149. defunct).  The principal archive site for these files is ftp.simtel.net,
  1150. which is the site referenced by the FTP pointers given below.  However,
  1151. there are numerous mirror sites that keep copies of the Simtel files.
  1152. For quickest response you should use the mirror site closest to you.
  1153. Consult the periodic postings in comp.archives.msdos.announce to find your
  1154. nearest mirror site.  If you have no FTP capability, the same postings will
  1155. tell you how to retrieve Simtel files by e-mail.
  1156.  
  1157. QPV (formerly called QPEG) is an extremely fast JPEG viewer. In exchange for
  1158. speed, QPV gives up some image quality, particularly on 256-or-less-color
  1159. displays.  Its best feature is a really-fast small preview window, which is
  1160. great for searching through lots of image files. Also views GIF,TGA,BMP,PNG.
  1161. Requires 386-or-better CPU and VGA-or-better display card.  Current version
  1162. is 1.7c, available from ftp.tu-clausthal.de:/pub/msdos/graphics/qpv17c.zip.
  1163. In the USA, a closer site is ftp.best.com:/pub/bryanw/qpv/.  Shareware, $20.
  1164.  
  1165. SEA is a new JPEG/PNG/GIF/etc viewer and file-format converter.  It is
  1166. very very fast --- faster than QPV in most cases, according to the authors.
  1167. Also, it can read progressive JPEGs; QPV can't.  Current version is 1.2c,
  1168. available from ftp.simtel.net:/pub/simtelnet/msdos/graphics/sea12c.zip.
  1169. Shareware, $24.  Requires 386-or-better CPU and VESA-compatible display.
  1170.  
  1171. DVPEG is a free viewer for JPEG, GIF, Targa, and PPM files.  Current version
  1172. is 3.0l, available from sunee.uwaterloo.ca:/pub/jpeg/viewers/dvpeg30l.zip.
  1173. (That's lower case l, not digit 1.)  This is a good basic viewer that comes
  1174. in both 286 and 386-and-up versions.  The user interface is clunky but
  1175. functional.  DVPEG is substantially faster than it used to be; on hi-color
  1176. displays it is nearly as fast as QPV.  On 8-bit displays, its two-pass
  1177. quantization mode is slow but gives much better image quality than QPV can
  1178. provide.
  1179.  
  1180. Lesser-used DOS viewers include:
  1181. * DISPLAY, alias DISP.  The Swiss army knife of DOS viewers.  Does almost
  1182.   everything, but a bit intimidating for newcomers.  User interface is much
  1183.   improved over early versions, but still awkward in places.  Requires 386
  1184.   or better.  Freeware.  Current version is 1.89, available from
  1185.   nctuccca.edu.tw:/PC/graphics/disp/disp189a.zip and disp189b.zip.
  1186. * GDS.  A well-done viewer and image converter for many image formats.
  1187.   Installation is simple, and the on-line documentation is very good.
  1188.   JPEG loading is a bit slower than the above viewers, though.  Shareware,
  1189.   $40.  Current version is 3.1f.  A slightly restricted demo version is
  1190.   available from ftp.photodex.com:/gds31f.exe.
  1191. * NVIEW.  Views JPEG and half a dozen other image formats.  Easy to use,
  1192.   very easy to install.  Only moderately fast, but it has lots of options.
  1193.   Supports hi-color and true-color modes on some cards, but not mine :-(.
  1194.   Requires 386 or better.  Current version is 1.50, available from
  1195.   ftp.simtel.net:/pub/simtelnet/msdos/graphics/nview150.zip. Shareware, $29.
  1196. * CSHOW or CompuShow (recently renamed 2SHOW).  This is a widely used viewer
  1197.   for GIF and other formats.  Versions prior to CSHOW 9.00 or 2SHOW 2.00 had
  1198.   absolutely abysmal JPEG support; if you have one of those, toss it and get
  1199.   a newer version.  The current release is still the slowest DOS JPEG viewer
  1200.   listed here, but it's faster than it used to be, and image quality and
  1201.   robustness have improved substantially.  The main reason to use CSHOW
  1202.   as a JPEG viewer is that it supports a wide range of pre-VGA display
  1203.   hardware (most of the above viewers require VGA or better).  Also, CSHOW
  1204.   doesn't require a 386.  Current version is 2.04, available from
  1205.   ftp.simtel.net:/pub/simtelnet/msdos/graphics/2show204.zip. Shareware, $39.
  1206.  
  1207. Due to the remarkable variety of PC graphics hardware, any one of these
  1208. viewers might not work on your particular machine.  If you can't get *any*
  1209. of them to work, you'll need to use one of the following conversion programs
  1210. to convert JPEG to GIF, then view with your favorite GIF viewer.  (If you
  1211. have hi-color hardware, don't use GIF as the intermediate format; try to
  1212. find a hi-color BMP- or TARGA-capable viewer instead.)
  1213.  
  1214. The free IJG JPEG converters are available from
  1215. ftp.simtel.net:/pub/simtelnet/msdos/graphics/jpeg6a.zip (or jpeg6a32.zip
  1216. if you have a 386-or-better CPU and extended memory).  These programs will
  1217. convert JPEG to and from GIF, BMP, Targa, and PPM formats; they are DOS
  1218. compilations of the free source code described in section 14.
  1219.  
  1220. Handmade Software offers free JPEG<=>GIF conversion tools, GIF2JPG/JPG2GIF.
  1221. These are quite slow and are limited to conversion to and from GIF format;
  1222. thus they can't produce 24-bit color output from a JPEG.  The sole advantage
  1223. of these tools is that they will read and write HSI's proprietary JPEG
  1224. format as well as the Usenet-standard JFIF format.  Since HSI-format files
  1225. are rather widespread on BBSes, this is a useful capability.  Version 2.0
  1226. of these tools is free (prior versions were shareware), and is available
  1227. from ftp.simtel.net:/pub/simtelnet/msdos/graphics/gif2jpg2.zip.
  1228. NOTE: do not use HSI format for files to be posted on Usenet, since it is
  1229. not readable by any non-HSI software.
  1230.  
  1231. Handmade Software also has a shareware image conversion and manipulation
  1232. package, Image Alchemy.  This will translate JPEG files (both JFIF and HSI
  1233. formats) to and from many other image formats.  It can also display images.
  1234. A demo version of Image Alchemy version 1.8 is available from
  1235. ftp.simtel.net:/pub/simtelnet/msdos/graphics/alch18.zip.
  1236.  
  1237. JPGINDEX is a useful tool for making indexes of JPEG image collections.
  1238. Available from ftp.simtel.net:/pub/simtelnet/msdos/graphics/jpgidx13.zip.
  1239.  
  1240. ------------------------------
  1241.  
  1242. Subject: [6] Microsoft Windows
  1243.  
  1244. ACDSee is a very fast, easy to use JPEG/GIF/PNG/etc viewer.  Good viewing
  1245. and browsing capabilities, including a fast preview display; but no image
  1246. editing or conversion functions.  Current version is 1.31, available from
  1247. ftp.simtel.net:/pub/simtelnet/win3/graphics/acdc131.zip (and other Simtel
  1248. mirror sites; see NOTE in previous section).  Shareware, $15.
  1249.  
  1250. LView Pro is a viewer/editor/converter for JPEG, GIF, BMP, and other
  1251. formats.  It offers a wide array of image editing functions and can load
  1252. JPEGs in either fast/low-quality or slow/high-quality modes.  Requires 386
  1253. or better CPU.  The current version, 1.D, runs under Windows 95, Windows NT,
  1254. or Windows 3.1 with Win32s 32-bit extension.  It's available from
  1255. ftp.std.com:/ftp/vendors/mmedia/lview/lviewpro.zip.  Shareware, $30.
  1256. An older version that can run under vanilla Windows 3.1 is
  1257. ftp.simtel.net:/pub/simtelnet/win3/graphics/lviewp1b.zip.
  1258.  
  1259. WinECJ is a fast, no-frills viewer with image quality noticeably worse than
  1260. most other JPEG viewers.  (You can purchase a version with better image
  1261. quality for AUD$30.)  Version 1.2 is free and available from
  1262. ftp.coast.net:/SimTel/win3/graphics/winecj12.zip.  Requires Windows 3.1 and
  1263. 256-or-more-colors mode.
  1264.  
  1265. WinJPEG displays and converts JPEG, GIF, TIFF, BMP, and other file formats.
  1266. It has some other nifty features including screen capture, color-balance
  1267. adjustment, and slideshow.  Shareware, $25.  The current version is 2.76,
  1268. available from ftp.coast.net:/SimTel/win3/graphics/winjp276.zip.  (This is a
  1269. 286-compatible version; if you register, you'll get the 386-and-up version,
  1270. which is roughly twice as fast.)
  1271.  
  1272. VuePrint is a widely used viewer and printer for JPEG, GIF, BMP, and other
  1273. formats.  It's slower at loading JPEGs than most other programs listed here,
  1274. but it has an impressive array of features.  Shareware, $40.  Version 4.6 is
  1275. available from ftp.simtel.net:/pub/simtelnet/win3/graphics/vuepri46.zip.
  1276.  
  1277. ThumbsPlus is an image browser and cataloger that handles many file formats.
  1278. It can also do some editing and format conversion, but indexing a large
  1279. image collection is what it's really aimed at.  Current version is 3.0c, at
  1280. ftp.cerious.com:/pub/cerious/thmpls32.exe.  Shareware, $70.  Requires
  1281. Windows 95 or NT, or Windows 3.1 with Win32s.
  1282.  
  1283. Some people prefer Paint Shop Pro.  It's not very impressive as just a JPEG
  1284. viewer (especially since image quality is not very good on 8-bit displays),
  1285. but it has *lots* of image manipulation and conversion features.  Current
  1286. version is 3.11, available from
  1287. ftp.coast.net:/SimTel/win3/graphics/psp311.zip.  Shareware, $69.
  1288.  
  1289. QPV and DVPEG (see previous section) work under Windows, but only in
  1290. full-screen mode, not in a window.  Also note that you can run the DOS
  1291. conversion programs described earlier inside a Windows DOS window.
  1292.  
  1293. Other Windows 95 native releases include:
  1294. * PolyView.  Reads JPEG, PNG, GIF, BMP, Photo-CD.  Current version is 2.21,
  1295.   available from ftp.winsite.com:/pub/pc/win95/desktop/polyv221.zip.
  1296.   Shareware, $20.
  1297.  
  1298. Other popular Windows NT-only viewers include:
  1299. * NTj.  Reads JPEG, GIF, and BMP.  Available from
  1300.   ftp.digital.com:/pub/DEC/NTj/NTj-x86.exe (or NTj.exe for the DEC Alpha
  1301.   version).  Freeware.
  1302. * PolyView.  Reads JPEG, GIF, BMP, Photo-CD.  Current version is 1.70,
  1303.   available from ftp.winsite.com:/pub/pc/winnt/misc/polyv170.zip.
  1304.   Shareware, $20.
  1305.  
  1306. ------------------------------
  1307.  
  1308. Subject: [7] OS/2
  1309.  
  1310. The most widely used OS/2 JPEG viewers are:
  1311.  
  1312. PMJPEG 1.73: OS/2 2.x port of WinJPEG, a popular viewer/converter for
  1313. Windows (see description in previous section).  Shareware, $20.  Available
  1314. from hobbes.nmsu.edu:/os2/graphics/pmjpg173.zip.
  1315.  
  1316. PMView 0.92: JPEG/GIF/BMP/Targa/etc viewer.  GIF viewing very fast, JPEG
  1317. viewing roughly the same speed as the above two programs.  Has image
  1318. manipulation & slideshow functions.  Shareware, $35.  Available from
  1319. hobbes.nmsu.edu:/os2/graphics/pmview92.zip.
  1320.  
  1321. Galleria 2.2:  JPEG/BMP/PCX/Targa/TIFF viewer/editor/converter.
  1322. Shareware, $65.  Available from hobbes.nmsu.edu:/os2/graphics/galler22.zip.
  1323.  
  1324. All of these viewers require Palette Manager for best display quality.
  1325. Opinion seems to be about equally split as to which is the best, so try
  1326. them all to see which one you like.
  1327.  
  1328. JPEGPROC enables all OS/2 multimedia applications to read and write JPEG
  1329. files.  Available as part of the "Practice Viewer Upgrade" which also
  1330. includes a multimedia browser alleged to be better than IB.EXE.
  1331. Shareware.  Available from hobbes.nmsu.edu:/os2/graphics/pvu110.zip.
  1332.  
  1333. Very out-of-date OS/2 executables of the free IJG conversion programs
  1334. are available from hobbes.nmsu.edu:/os2/graphics/jpegv4.zip (32-bit) or
  1335. hobbes.nmsu.edu:/os2/graphics/jpeg4_16.zip (16-bit, for OS/2 1.x).
  1336. I hope someone will submit newer versions soon.
  1337.  
  1338. Note: the hobbes OS/2 collection is mirrored at ftp-os2.cdrom.com.
  1339.  
  1340. ------------------------------
  1341.  
  1342. Subject: [8] Macintosh
  1343.  
  1344. Most Mac JPEG programs rely on Apple's JPEG implementation, which is part of
  1345. the QuickTime system extension; so you need to have QuickTime installed.
  1346. To use QuickTime, you need a 68020 or better CPU and you need to be running
  1347. System 6.0.7 or later.  (If you're running System 6, you must also install
  1348. the 32-bit QuickDraw extension; in System 7, that is built in.)  The latest
  1349. version of QuickTime is 2.1, available from
  1350. ftp.support.apple.com:/pub/apple_sw_updates/US/mac/system_sw/other_sys_sw/QuickTime_2.1.hqx.
  1351.  
  1352. Mac users should keep in mind that QuickTime's JPEG format, PICT/JPEG, is
  1353. not the same as the Usenet-standard JFIF JPEG format.  (See part 1 for
  1354. details.)  If you post images on Usenet, make sure they are in JFIF format.
  1355. Most of the programs mentioned here can handle either format.
  1356.  
  1357. The two major Internet sites for Mac software are sumex-aim.stanford.edu and
  1358. mac.archive.umich.edu.  Unfortunately they are both very busy, so you may
  1359. have better luck getting files from a mirror site.  (In fact, these days
  1360. you *must* use a mirror site for sumex-aim; the primary archive only allows
  1361. mirror sites to log in!  The sumex-aim FTP pointers given below are
  1362. therefore useless as-is; you *must* substitute a mirror site name.)  See
  1363. "Introductory Macintosh Frequently Asked Questions" in the comp.sys.mac.*
  1364. newsgroups for the current locations of mirrors.
  1365.  
  1366. JPEGView is an excellent free program for viewing JFIF,PICT/JPEG,GIF,TIFF,
  1367. and other image files.  It can convert between the two JPEG formats and can
  1368. create preview images for files.  The current version is 3.3.1, available
  1369. from sumex-aim.stanford.edu:/info-mac/gst/grf/jpeg-view-331.hqx.  Requires
  1370. System 7; QuickTime is optional.  JPEGView usually produces the best color
  1371. image quality of all the currently available Mac JPEG viewers, and it needs
  1372. much less memory to view large images than most other Mac viewers.  Given
  1373. a large image, JPEGView automatically scales it down to fit on the screen,
  1374. rather than presenting scroll bars like most other viewers.  (You can zoom
  1375. in on any desired portion, though.)  Some people like this behavior, some
  1376. don't.  Overall, JPEGView's user interface is very well thought out.
  1377.  
  1378. Jade is a new, very promising freeware viewer for JPEG and GIF images.
  1379. It's fast, simple to use, and has preview and slideshow capabilities.
  1380. And it supports progressive JPEGs.  Since JPEGView is no longer being
  1381. updated, Jade will probably supersede it as the most popular Mac JPEG
  1382. viewer before long.  Current version is 1.03, available from
  1383. sumex-aim.stanford.edu:/info-mac/gst/grf/jade-103.hqx.  Requires 68020
  1384. (or higher) or PowerPC, as well as System 7.5 (or later) or Thread Manager.
  1385.  
  1386. GIFConverter, a shareware ($40) image viewer/editor/converter, supports
  1387. JFIF,PICT/JPEG,GIF, and many other image formats.  Current version is 2.3.7,
  1388. mac.archive.umich.edu:/mac/graphics/graphicsutil/gifconverter2.37.cpt.hqx.
  1389. Requires System 6.0.5 or later.  GIFConverter is not better than JPEGView as
  1390. a plain JPEG/GIF viewer, but it has much more extensive image manipulation
  1391. and format conversion capabilities.  Also, GIFConverter is your best bet
  1392. if your machine is too old to run System 7 and/or QuickTime.  Hint: if
  1393. GIFConverter runs out of memory while loading a large JPEG, try converting
  1394. the file to GIF with JPEG Convert, then viewing the GIF version.
  1395.  
  1396. GraphicConverter is another popular viewer/editor/converter.  It has even
  1397. more functionality than GIFConverter, but is correspondingly larger.  Great
  1398. if you like lots of options.  Shareware, $35.  Current version is 2.4.3,
  1399. sumex-aim.stanford.edu:/info-mac/gst/grf/graphic-converter-243.hqx.
  1400.  
  1401. JPEG Convert, a Mac version of the free IJG JPEG conversion utilities, is
  1402. available at sumex-aim.stanford.edu:/info-mac/gst/grf/jpeg-convert-10.hqx.
  1403. This will run on any Mac, but it only does file conversion, not viewing.
  1404. You can use it in conjunction with any GIF viewer.  (Note: JPEG Convert has
  1405. not yet been updated to support progressive JPEG :-(.)
  1406.  
  1407. JPEG Transmogrifier is a simple drag-and-drop application to convert regular
  1408. JPEGs to progressive and back.  It can also convert GIF and PICT images to
  1409. either flavor of JPEG.  Shareware, $12.  Available from
  1410. ftp.best.com:/pub/gyld/transmogrifier.sea.hqx.
  1411.  
  1412. Progressify is an even simpler drag-and-drop application that converts
  1413. regular JPEGs to progressive and back, and does nothing else.  Although
  1414. less capable than Transmogrifier, it's free.  Available from
  1415. sumex-aim.stanford.edu:/info-mac/gst/grf/progressify-10.hqx.
  1416.  
  1417. More and more commercial Mac applications are supporting JPEG, although not
  1418. all can deal with the Usenet-standard JFIF format.  Adobe Photoshop, version
  1419. 2.0.1 or later, can read and write JFIF-format JPEG files.  (In 2.0.1, use
  1420. the JPEG plug-in on the Acquire menu; 2.5 and later handle JPEG the same as
  1421. other file types.)  You must set the file type code of a downloaded JPEG
  1422. file to 'JPEG' to allow Photoshop to recognize it.
  1423.  
  1424. Photoshop does not yet support progressive JPEG by itself, but you can get
  1425. two different plugins that enable progressive JPEG support in Photoshop
  1426. (and other applications that support Photoshop plugins).  One is ProJPEG,
  1427. available from aris.com:/boxtop/ProJPEGv1.0.1.sit.hqx (shareware, $25).
  1428. The other is the plugin version of JPEG Transmogrifier, available from
  1429. ftp.best.com:/pub/gyld/plugin.sea.hqx (shareware, $22).
  1430.  
  1431. HINT: if you use Fetch to retrieve files by FTP, add ".jpg" to its list of
  1432. binary file types under Customize/Suffix Mapping.  Otherwise Fetch's
  1433. "automatic" retrieval mode will retrieve JPEGs in text mode, thus corrupting
  1434. the data.
  1435.  
  1436. ------------------------------
  1437.  
  1438. Subject: [9] Amiga
  1439.  
  1440. Most programs listed in this section are available from "AmiNet" archive
  1441. sites.  The master AmiNet site is wuarchive.wustl.edu, but there are many
  1442. mirror sites and you should try to use the closest one.
  1443.  
  1444. Osma Ahvenlampi posted a good review of Amiga picture viewers in
  1445. comp.sys.amiga.reviews in March 1994.  You can retrieve it from
  1446. math.uh.edu:/pub/Amiga/comp.sys.amiga.reviews/software/graphics/PictureViewerSurvey_2.
  1447. Opinions here are mostly stolen from his article.
  1448.  
  1449. FastView is a fast, high-quality JPEG/GIF/ILBM viewer.  Works well on both
  1450. ECS and AGA displays.  Shareware, $15; requires OS 2.0.  Version 2.0 is
  1451. available from Aminet sites, file /pub/aminet/gfx/show/FView20.lha.
  1452.  
  1453. FastJPEG is a free JPEG viewer; it's fast and has good image quality, but it
  1454. doesn't view any formats except JPEG.  Somewhat faster than FastView on ECS
  1455. machines, slower on AGA.  Version 1.10 is available from Aminet sites, file
  1456. /pub/aminet/gfx/show/FastJPEG_1.10.lha.
  1457.  
  1458. PPShow is a good free JPEG/GIF/ILBM/ANIM/Datatype viewer.  Version 4.0 is
  1459. available from Aminet sites, file /pub/aminet/gfx/show/PPShow40.lha.  For
  1460. viewing JPEGs it is a little slower than FastJPEG, and image quality is not
  1461. as good (particularly on ECS machines); but if you want to use just one
  1462. viewer, PPShow is the one.
  1463.  
  1464. HamLab Plus is an excellent JPEG viewer/converter, as well as being a
  1465. general image manipulation tool.  It's cheap (shareware, $20) and can read
  1466. several formats besides JPEG.  The current version is 2.0.8.  A demo version
  1467. is available from AmiNet sites, file /pub/aminet/gfx/edit/hamlab208d.lha.
  1468. The demo version will crop images larger than 512x512, but it is otherwise
  1469. fully functional.
  1470.  
  1471. Rend24 (shareware, $30) is an image renderer that can display JPEG, ILBM,
  1472. and GIF images.  The program can be used to create animations, even
  1473. capturing frames on-the-fly from rendering packages like Lightwave.
  1474. The current version is 1.05, available from AmiNet sites, file
  1475. /pub/aminet/gfx/aga/rend105.lha.
  1476.  
  1477. Viewtek is a free JPEG/ILBM/GIF/ANIM viewer.  The current version is 2.1,
  1478. available from AmiNet sites, file /pub/aminet/gfx/show/ViewTEK21.lha.
  1479. Viewtek used to be the best free JPEG viewer for Amiga, but it now faces
  1480. stiff competition from FastJPEG and PPShow.  The choice depends on your
  1481. display hardware and personal preferences.  Viewtek has poor display quality
  1482. on OCS/ECS (HAM6) screens; but it looks very good on AGA (HAM8).
  1483.  
  1484. There is finally a good JPEG datatype for use with datatype-based viewers
  1485. (such as Multiview or ShowDT).  Available from AmiNet sites, file
  1486. /pub/aminet/util/dtype/jfif_dtc.lha.  (The version dated 12/12/94
  1487. has a bug; you should also get /pub/aminet/util/dtype/jfif_FIX.lha.)
  1488.  
  1489. The free IJG JPEG software is available compiled for Amigas from AmiNet
  1490. sites, file /pub/aminet/gfx/conv/jpegV6bin.lha.  (Despite the name, this
  1491. is now version 6a.)  These programs convert JPEG to/from PPM, GIF, BMP,
  1492. Targa formats.
  1493.  
  1494. If you have a DCTV box or a compatible display, try JPEGonDCTV.  Available
  1495. from AmiNet sites, file /pub/aminet/gfx/show/JPEGonDCTV100.lha.  Viewtek is
  1496. also reported to work well with DCTV.
  1497.  
  1498. ------------------------------
  1499.  
  1500. Subject: [10] Atari ST
  1501.  
  1502. GEM-View (shareware, $26) displays JPEG, GIF, and other image formats.
  1503. FTP from atari.archive.umich.edu:/atari/Graphics/Gemview/gview248.lzh.
  1504. This is a well regarded viewer.  The English documentation tends to be a
  1505. few versions behind, though.
  1506.  
  1507. MGIF is a good free viewer/editor for JPEG and many other image formats.
  1508. It's particularly good on monochrome monitors, where it manages to achieve
  1509. four-level gray-scale effect by flickering; but it works on all Ataris.
  1510. Version 5.00 is at atari.archive.umich.edu:/atari/Graphics/mgif500.lzh.
  1511.  
  1512. 1stGuide is a small, fast viewer for all ST/TT/Falcon systems; it supports
  1513. JPEG, PNG, and other file formats.  Shareware, $35.  Available from
  1514. ftp.cs.tu-berlin.de:/pub/atari/View/1st-guide/1stguide.zip.
  1515.  
  1516. The free IJG JPEG software is available compiled for Atari ST/TT/etc
  1517. from micros.hensa.ac.uk:/micros/atari/tos/p/p108/jpeg5abn.zoo.
  1518. These programs convert JPEG to/from PPM, GIF, BMP, Targa formats.
  1519.  
  1520. ------------------------------
  1521.  
  1522. Subject: [11] Acorn Archimedes
  1523.  
  1524. The Acorn archive at micros.hensa.ac.uk contains several JPEG-capable
  1525. programs.  Read the file micros.hensa.ac.uk:/micros/arch/riscos/index
  1526. for retrieval instructions.  Recommended archive entries include:
  1527.  
  1528. a022 Translator 7.18: image file format converter (shareware)
  1529. b008 FYEO 2.02: For Your Eyes Only, fast JPEG/GIF image viewer (shareware)
  1530. a110 JPEG 6.a: IJG v6a software (JPEG<=>PPM,GIF,Targa) w/ desktop front end
  1531. a121 ChangeFSI 1.15: image format conversion and viewing
  1532. e018 SwiftJPEG 0.09: fast JPEG viewer, requires SpriteExtend 0.99
  1533.  
  1534. SpriteExtend 0.99 comes with ROS 3.6, and is available for ROS 3.5 from
  1535. ftp.acorn.co.uk:/pub/riscos/releases/spriteextend.arc.  It provides very
  1536. fast JPEG decoding, but sacrifices image quality on 256-color displays.
  1537.  
  1538. ------------------------------
  1539.  
  1540. Subject: [12] NeXT
  1541.  
  1542. OmniImageFilter is a filter package that converts NeXTStep TIFF to and from
  1543. about 30 image formats.  It reads JPEG but does not write it.  It works with
  1544. most NeXTStep programs that handle drag-and-drop.  OmniImage is a simple
  1545. image viewer that uses the filter package.  Both are free.  Available from
  1546. ftp.omnigroup.com:/pub/software/OmniImageFilter-3.0.pkg.tar and
  1547. ftp.omnigroup.com:/pub/software/OmniImage-3.0.1.pkg.tar.
  1548.  
  1549. ImageViewer is a PD utility that displays images and can do some format
  1550. conversions.  The current version reads JPEG but does not write it.
  1551. ImageViewer is available from the NeXT archives at sonata.cc.purdue.edu and
  1552. cs.orst.edu:/pub/next/3.0/bin/ImageViewer0.9i.tar.Z.  Note that there
  1553. is an older version floating around that does not support JPEG.
  1554.  
  1555. The "imagetools" archive at ftp.thoughtport.com:/pub/next/graphics/ includes
  1556. NeXTStep compiled binaries for a wide array of free image manipulation tools
  1557. including the IJG JPEG tools.
  1558.  
  1559. NeXTStep includes built-in support for TIFF/JPEG, but not for the
  1560. Usenet-standard JFIF format.  Be warned that the TIFF/JPEG standard is
  1561. about to change away from the flavor currently produced by NeXTStep,
  1562. so compatibility with other platforms is doubtful.
  1563.  
  1564. ------------------------------
  1565.  
  1566. Subject: [13] Other systems
  1567.  
  1568. If you don't see what you want for your machine, check out the free IJG
  1569. source code described in the next section.  Assuming you have a C compiler
  1570. and at least a little knowledge of compiling C programs, you should be able
  1571. to prepare JPEG conversion programs from the source code.  You'll also need
  1572. a viewer program.  If your display is 8 bits or less, any GIF viewer will do
  1573. fine; if you have a display with more color capability, try to find a viewer
  1574. that can read Targa, BMP, or PPM 24-bit image files.
  1575.  
  1576. ------------------------------
  1577.  
  1578. Subject: [14] Freely available source code for JPEG
  1579.  
  1580. Free, portable C code for JPEG compression is available from the Independent
  1581. JPEG Group.  Source code, documentation, and test files are included.
  1582. Version 6a is available from ftp.uu.net:/graphics/jpeg/jpegsrc.v6a.tar.gz.
  1583. If you are on a PC you may prefer ZIP archive format, which you can find at
  1584. ftp.simtel.net:/pub/simtelnet/msdos/graphics/jpegsr6a.zip (or at any
  1585. Simtel mirror site).  On CompuServe, see the Graphics Support forum
  1586. (GO CIS:GRAPHSUP), library 12 "JPEG Tools", file jpegsr6a.zip.
  1587.  
  1588. The IJG code includes a reusable JPEG compression/decompression library,
  1589. plus sample applications "cjpeg" and "djpeg", which perform conversion
  1590. between JPEG JFIF format and image files in PPM/PGM (PBMPLUS), GIF, BMP,
  1591. Utah RLE, and Targa formats.  A third application "jpegtran" provides
  1592. lossless transcoding between different JPEG formats --- for example, it can
  1593. convert a baseline JPEG file to an equivalent progressive JPEG file.  Two
  1594. small applications "wrjpgcom" and "rdjpgcom" insert and extract textual
  1595. comments in JFIF files.  The package is highly portable; it has been used
  1596. successfully on many machines ranging from Apple IIs to Crays.
  1597.  
  1598. The IJG code is free for both noncommercial and commercial use; only an
  1599. acknowledgement in your documentation is required to use it in a product.
  1600. (See the README file in the distribution for details.)
  1601.  
  1602.  
  1603. A different free JPEG implementation, written by the PVRG group at Stanford,
  1604. is available from havefun.stanford.edu:/pub/jpeg/JPEGv1.2.1.tar.Z.  The PVRG
  1605. code is designed for research and experimentation rather than production
  1606. use; it is slower, harder to use, and less portable than the IJG code, but
  1607. the PVRG code is easier to understand.  Also, the PVRG code supports
  1608. lossless JPEG, while the IJG code does not.  (But PVRG does not support
  1609. progressive JPEG.)
  1610.  
  1611. There's also a lossless-JPEG-only implementation available from Cornell,
  1612. ftp.cs.cornell.edu:/pub/multimed/ljpg.tar.Z.
  1613.  
  1614. Neither the PVRG nor Cornell codecs are being actively maintained, but the
  1615. IJG code is.
  1616.  
  1617. ------------------------------
  1618.  
  1619. Subject: [15] Which programs support progressive JPEG?
  1620.  
  1621. With luck, this will only be a Frequently Asked Question for a short time,
  1622. after which most JPEG-supporting programs will have been upgraded to include
  1623. p-JPEG capability.  But right now it's a hot topic.  Here's the latest
  1624. I've heard (if you have newer info, please send mail):
  1625.  
  1626. WWW Browsers:
  1627.  
  1628. Netscape 2.0b1 (Unix/X, Windows, Mac): full implementation
  1629.  
  1630. Spyglass Enhanced Mosaic 2.1 (Unix/X, Windows, Mac): full implementation
  1631. (Note: lots of other people license Spyglass' code, but I don't know
  1632. which licensees are shipping the latest version.)
  1633.  
  1634. Netshark 1.1 (Windows, Mac): full implementation
  1635.  
  1636. Microsoft Internet Explorer 2.0 (Windows, Mac): full implementation
  1637.  
  1638. Java 1.0 (Windows 95/NT, Solaris, more coming): full implementation
  1639.  
  1640. OmniWeb 2.0 (NeXTStep): full implementation
  1641.  
  1642. Wollongong's Emissary 1.1 (Windows): full implementation (? not sure)
  1643.  
  1644. I-Comm 1.09beta (Windows): full implementation (?)
  1645.  
  1646. UdiWWW 1.0.010 (Windows): full implementation
  1647.  
  1648. NCSA Mac Mosaic 3.0a2 (Mac): full implementation
  1649.  
  1650. NCSA Windows Mosaic 2.1.1 (Windows): reads p-JPEG, no incremental display
  1651.  
  1652. NCSA X Mosaic 2.7b2 (Unix/X): reads p-JPEG, no incremental display
  1653.  
  1654. Arena beta-1e (Unix/X): reads p-JPEG, no incremental display
  1655.  
  1656. Fresco 0.72 (Acorn): reads p-JPEG, no incremental display
  1657.  
  1658. (A browser that doesn't do incremental display of images won't be able to
  1659. give you the progressive effect, but it's still useful to have p-JPEG
  1660. compatibility so that you can at least see the image.)
  1661.  
  1662. See "BrowserWatch" at http://www.browserwatch.com/ for contact information
  1663. for these browsers.  Versions mentioned are the first to support p-JPEG,
  1664. not necessarily the current release.
  1665.  
  1666.  
  1667. Image Viewers & Converters:
  1668.  
  1669. See the appropriate prior sections for exact pointers to these programs.
  1670. Note that image viewers generally won't bother with doing incremental
  1671. display of p-JPEG files; they'll just read them in one pass for speed.
  1672.  
  1673. IJG command-line programs (almost any platform): see section 14 for source
  1674. code.  Precompiled executables are also available for some platforms;
  1675. see subject heading for your system.  You need v6 or later.
  1676.  
  1677. XV (Unix/X): recompile v3.10 with IJG v6 to read p-JPEG
  1678.  
  1679. ImageMagick (Unix/X): 3.6.6 or later
  1680.  
  1681. JPEGPROC (OS/2): 1.1.0 or later
  1682.  
  1683. LView Pro (Windows 95/NT, or Win 3.1 + Win32s): 1.C or later
  1684.  
  1685. PolyView (Windows 95): 2.18 or later
  1686.  
  1687. ThumbsPlus (Windows 95/NT, or Win 3.1 + Win32s): 3.0c or later
  1688.  
  1689. PMView (OS/2): 0.92 or later
  1690.  
  1691. SEA (DOS): 1.2b or later
  1692.  
  1693. Jade (Mac): all versions
  1694.  
  1695. GraphicConverter (Mac): 2.3.1 or later
  1696.  
  1697. ProJPEG Photoshop plugin (Mac): all versions
  1698.  
  1699. JPEG Transmogrifier (Mac): all versions
  1700.  
  1701. DeBabelizer (Mac): 1.6.5 or later
  1702.  
  1703. 1stGuide (Atari): 10.Jan.96 or later
  1704.  
  1705. ------------------------------
  1706.  
  1707. Subject: [16] Where are FAQ lists archived?
  1708.  
  1709. Many FAQs are crossposted to news.answers.  Well-run netnews sites will have
  1710. the latest versions available in that newsgroup.  However, there are a *lot*
  1711. of postings in news.answers, and they can be hard to sort through.
  1712.  
  1713. The latest versions of news.answers postings are archived at rtfm.mit.edu.
  1714. You can retrieve this FAQ by FTP as /pub/usenet/news.answers/jpeg-faq/part1
  1715. and /pub/usenet/news.answers/jpeg-faq/part2.  With a Web browser, use the
  1716. URL ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/.  If you have no
  1717. FTP access, send e-mail to mail-server@rtfm.mit.edu containing the lines
  1718.     send usenet/news.answers/jpeg-faq/part1
  1719.     send usenet/news.answers/jpeg-faq/part2
  1720. (If you don't get a reply, the server may be misreading your return address;
  1721. add a line such as "path myname@mysite" to specify your correct e-mail
  1722. address to reply to.)  For more info about the FAQ archive, retrieve the
  1723. file rtfm.mit.edu:/pub/usenet/news.answers/news-answers/introduction.
  1724.  
  1725. The same FAQs are also available in the World Wide Web, although you should
  1726. be wary of out-of-date copies at some sites.  Well-run WWW FAQ archive sites
  1727. include http://www.lib.ox.ac.uk/internet/news/ and
  1728. http://www.cs.ruu.nl/cgi-bin/faqwais.
  1729.  
  1730. -- 
  1731.             tom lane
  1732.             organizer, Independent JPEG Group
  1733.             tgl@netcom.com or tgl@sss.pgh.pa.us
  1734.  
  1735.